import request from "../../../utils/request.js"
import hasPermission from "../../../utils/hasPermission.js"
import PubSub from "pubsub-js"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 当前月份
    month:"--",
    // 当前日期
    day:"--",
    // 推荐歌曲列表
    recommendSongList:[],
    // 选中的歌曲的下标
    index:null
  },

  // 选择歌曲进行播放
  toSong(e){
    const {id,dataset:{index}} = e.currentTarget
    this.setData({
      index
    })
    wx.navigateTo({
      url: '../song/song?id='+id,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    // 判断是否已登录
    if(!hasPermission()) return
    // 订阅song界面接收改变播放歌曲的顺序种类
    PubSub.subscribe("type",(msg,data)=>{
      let { index, recommendSongList} = this.data
      if(data === "pre"){
        if(index === 0){
          // 第一首歌前一首回到最后一首
          index = recommendSongList.length - 1
        }else{
          index--
        }
      }else{
        // 最后一首歌后一首回到第一首
        if (index === recommendSongList.length - 1){
          index = 0
        }else{
          index++
        }
      }
      this.setData({
        index
      })
      // 发布要替换的歌曲id
      PubSub.publish("id",this.data.recommendSongList[index].id)
    })

    const date = new Date()
    this.setData({
      month:date.getMonth()+1,
      day:date.getDate()
    })
    // 请求推荐歌曲列表
    const {recommend} = await request("/recommend/songs")
    this.setData({
      recommendSongList: recommend.map(item=>{
        return {
          id:item.id,
          name:item.name,
          singer:item.artists.map(item=>{
            return item.name
          }).join("，"),
          picUrl:item.album.picUrl
        }
      })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})